import  os,re,time
# 1.持续输出日志到D盘的11-5.log中
# adb  logcat >> D:\11-5.log
# 1.1开启多线程,持续输出信息到日志文件
from threading import  Thread
# 1.2从threading模块中导入Thread多线程方法
# 1.3定义多线程函数
def hanshu1():
    # 字符串前加r,防止\产生特殊歧义
    print("我是函数1,我是多线程")
    res = os.popen(r'adb  logcat >> D:\11-5.log').read()
    # .read()读取回显的内容

#1.4 开启多线程,调用定义的函数
t =  Thread(target=hanshu1)
t.start()# 开启多线程


# 2.adb打开知乎app,记录启动时间
# adb shell am start -W com.zhihu.android/.app.ui.activity.MainActivity t29
res_start  = os.popen(r'adb shell am start -W com.zhihu.android/.app.ui.activity.MainActivity t29').read()
print("打印启动回显内容",res_start)
# 2.1执行adb命令,打印回显
pipei = re.search("WaitTime: (\d+.*?)",res_start).group(1)
print("打印正则匹配的结果,单位毫秒:",pipei)
# 2.2 使用正则表达式,提取打开时间

# 2.3 判断是否符合性能要求. 将字符串转成整数int()
if int(pipei) < 3000:
    print("启动性能测试通过,热启动小于3秒")
else:
    print("启动性能测试不同通过,热启动大于3秒")



# 3.点击热榜选项
while  True:# 死循环
    res_main  = os.popen("adb shell  dumpsys window windows |  findstr  mFocusedApp").read()
    print("获取的界面名是:",res_main)
    # 判断回显内容中,是否出现主程序界面名 .app.ui.activity.MainActivity  t31
    try:
        pipei2 = re.search(r"com.zhihu.android/.app.ui.activity.LaunchAdActivity",res_main).group()
        print("匹配的结果是:",pipei2)
        print("匹配成功,现在是启动界面")
        continue #继续死循环
    except:
        print("匹配失败,现在是主程序界面")
        # 进入到主程序界面,循环结束,打断死循环break
        break

# 前置条件,点击我同意按钮
time.sleep(4)
res_tap1 = os.popen("adb   shell  input tap   740  1624").read()
#  adb   shell  input tap   425 266
time.sleep(4)
res_tap = os.popen("adb   shell  input tap   425 266").read()
print("打印点击热榜回显内容:",res_tap)


# 5.音量的调整
# 先调整到最大音量
        #思考:怎么判断是否达到最大音量
# 再调整到最小音量
        #思考:怎么判断是否达到最小音量

